on.push
イベントを使うと、そのリポジトリにpush
した時にそのワークフローを走らせられます。on.pull_request
の場合はプルリクを上げた時だけです。
使うには以下のような一行をワークフローファイルへ置くだけです。どちらかだけを使いたいなら配列じゃなくでも良いです。
on: [push, pull_request]
# 1つだけなら `on: push`
またこのon.push
やon.pull_request
は下に詳細設定を置くことがでます。
ブランチ・タグフィルター
「このブランチ、このタグがpush
された時だけ」のような設定ができます。これはブランチはbranches
またはbranches-ignore
、タグはtags
またはtags-ignore
で設定できます。-ignore
が付いているものとそうでないものは同時に設定できません。
また一度含ませてから、一部だけ含ませないような書き方も!
を頭に付けることで可能です。これは.gitignore
のような設定ファイルと同じです。
ブランチ
ブランチはデフォルトですべてのブランチが実行対象に含まれてます。例えば以下のような設定があるとします。
on:
push:
branches-ignore:
- 'features/**'
- '!features/*-master'
上記の設定上ではfeatures/**
にマッチしない時とfeat/*-master
にマッチする(feat/foo-master
など)時のみワークフローが走ります。つまりこれはmaster
ブランチなども対象になります。
!
はもちろんbranches
でも効きます。
on:
push:
branches:
- "features/**"
- "!features/*-test"
タグ
タグの場合はデフォルトではすべて対象外になってます。もしすべてのタグを含めないのであれば、
on:
push:
tags:
- "*"
とすることでできます。セマンティック・バージョニングな形のタグだけにしたいなら、
on:
push:
tags:
- "v[0-9].[0-9]+.[0-9]+"
この場合ではfeatures/*-test
にはマッチしないfeatures/**
にマッチするブランチでワークフローが走ります。
ファイルフィルター
on.push
の下にはpaths
とpaths-ignore
というキーも置けます。これは「コミットにパターンにマッチするファイルがあった時だけ処理するよ」またはその逆のように設定できます。
on:
push:
paths-ignore:
- '**.md'
上記のような設定にしておけばすべての**.md
(リポジトリ上のすべての*.md
ファイル)だけのコミットの時にはワークフローを走らせずに済みます。
on:
push:
paths:
- '**.js'
このようにすれば**.js
の時だけ対象にできます。